/**
 * 权限接口定义
 * 作者：GodMainCode
 * 创建时间：2024-01-17
 * 修改时间：2024-01-17
 * 修改人：GodMainCode
 */

// 权限类型枚举
export enum PermissionType {
  DIRECTORY = 1, // 目录
  MENU = 2,      // 菜单
  BUTTON = 3,    // 按钮
}

// 基础权限接口
export interface IPermission {
  id: number;
  name: string;           // 权限名称
  code: string;           // 权限标识
  type: PermissionType;   // 权限类型
  icon?: string;          // 图标
  path?: string;          // 路由路径
  component?: string;     // 组件路径
  parent_id?: number;     // 父级ID
  description?: string;   // 权限描述
  sort?: number;          // 排序
  status: number;         // 状态：0-禁用 1-启用
  created_at: Date;       // 创建时间
  updated_at: Date;       // 更新时间
  is_deleted: number;     // 是否删除：0-否 1-是
}

// 权限树节点接口
export interface IPermissionTree extends IPermission {
  children?: IPermissionTree[];  // 子节点
  parent?: IPermissionTree;      // 父节点
}

// 权限创建接口
export interface ICreatePermission {
  name: string;
  code: string;
  type: PermissionType;
  icon?: string;
  path?: string;
  component?: string;
  parent_id?: number;
  description?: string;
  sort?: number;
}

// 权限更新接口
export interface IUpdatePermission extends Partial<ICreatePermission> {} 